﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СтратегииОтраженияВРеглУчетеНачислений
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"e3f7fe44-c98f-466f-8723-485d5a270654\", \"Представление\":\"КакЗаданоВидуРасчета\"}")]
		КакЗаданоВидуРасчета = 0,//Как задано виду расчета
		[EnumMember(Value = "{\"Ссылка\":\"6c1ce911-014b-4260-a63a-7d9423776812\", \"Представление\":\"КакЗаданоНаНачалоСобытия\"}")]
		КакЗаданоНаНачалоСобытия = 1,//Как задано на начало события
		[EnumMember(Value = "{\"Ссылка\":\"1866a81b-f250-4b04-a053-d2e2114cc10f\", \"Представление\":\"КакБазовыеНачисления\"}")]
		КакБазовыеНачисления = 2,//Как базовые начисления
	}
	public static partial class СтратегииОтраженияВРеглУчетеНачислений_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid КакЗаданоВидуРасчета = new Guid("5d482387-275a-5406-466f-c98fe3f7fe44");//Как задано виду расчета
		public static readonly Guid КакЗаданоНаНачалоСобытия = new Guid("947d3aa6-7723-1268-4260-014b6c1ce911");//Как задано на начало события
		public static readonly Guid КакБазовыеНачисления = new Guid("e2d253a0-4c11-0fc1-4b04-f2501866a81b");//Как базовые начисления
		public static СтратегииОтраженияВРеглУчетеНачислений Получить(this СтратегииОтраженияВРеглУчетеНачислений Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СтратегииОтраженияВРеглУчетеНачислений Получить(this СтратегииОтраженияВРеглУчетеНачислений Значение, Guid Ссылка)
		{
			if(Ссылка == КакЗаданоВидуРасчета)
			{
				return СтратегииОтраженияВРеглУчетеНачислений.КакЗаданоВидуРасчета;
			}
			else if(Ссылка == КакЗаданоНаНачалоСобытия)
			{
				return СтратегииОтраженияВРеглУчетеНачислений.КакЗаданоНаНачалоСобытия;
			}
			else if(Ссылка == КакБазовыеНачисления)
			{
				return СтратегииОтраженияВРеглУчетеНачислений.КакБазовыеНачисления;
			}
			return СтратегииОтраженияВРеглУчетеНачислений.ПустаяСсылка;
		}
		public static byte[] Ключ(this СтратегииОтраженияВРеглУчетеНачислений Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СтратегииОтраженияВРеглУчетеНачислений Значение)
		{
			switch (Значение)
			{
				case СтратегииОтраженияВРеглУчетеНачислений.КакЗаданоВидуРасчета: return КакЗаданоВидуРасчета;
				case СтратегииОтраженияВРеглУчетеНачислений.КакЗаданоНаНачалоСобытия: return КакЗаданоНаНачалоСобытия;
				case СтратегииОтраженияВРеглУчетеНачислений.КакБазовыеНачисления: return КакБазовыеНачисления;
			}
			return Guid.Empty;
		}
	}
}